package ig.ejb.metrica.da;

import java.sql.Timestamp;
import javax.ejb.*;

/**
 * This is the bean class for the EspeciesBean enterprise bean.
 * Created 18/08/2006 08:55:16 AM
 * @author jsanchez
 */
public abstract class EspeciesBean implements EntityBean, EspeciesLocalBusiness {
    private EntityContext context;
    
    // <editor-fold defaultstate="collapsed" desc="EJB infrastructure methods. Click on the + sign on the left to edit the code.">
    // TODO Consider creating Transfer Object to encapsulate data
    // TODO Review finder methods
    /**
     * @see javax.ejb.EntityBean#setEntityContext(javax.ejb.EntityContext)
     */
    public void setEntityContext(EntityContext aContext) {
        context = aContext;
    }
    
    /**
     * @see javax.ejb.EntityBean#ejbActivate()
     */
    public void ejbActivate() {
        
    }
    
    /**
     * @see javax.ejb.EntityBean#ejbPassivate()
     */
    public void ejbPassivate() {
        
    }
    
    /**
     * @see javax.ejb.EntityBean#ejbRemove()
     */
    public void ejbRemove() {
        
    }
    
    /**
     * @see javax.ejb.EntityBean#unsetEntityContext()
     */
    public void unsetEntityContext() {
        context = null;
    }
    
    /**
     * @see javax.ejb.EntityBean#ejbLoad()
     */
    public void ejbLoad() {
        
    }
    
    /**
     * @see javax.ejb.EntityBean#ejbStore()
     */
    public void ejbStore() {
        
    }
    // </editor-fold>
    
    
    public abstract Integer getId();
    public abstract void setId(Integer id);
    
    public abstract Integer getIdespecie();
    public abstract void setIdespecie(Integer idespecie);
    
    public abstract Timestamp getFechaCorte();
    public abstract void setFechaCorte(Timestamp fechaCorte);
    
    public abstract String getIsin();
    public abstract void setIsin(String isin);
    
    public abstract String getNombre();
    public abstract void setNombre(String nombre);
    
    public abstract String getNombreMoneda();
    public abstract void setNombreMoneda(String nombreMoneda);
    
    public abstract String getNombreEmisor();
    public abstract void setNombreEmisor(String nombreEmisor);
    
    public abstract Double getValoremision();
    public abstract void setValoremision(Double valoremision);
    
    public abstract Integer getDiasxanno();
    public abstract void setDiasxanno(Integer diasxanno);
    
    public abstract Integer getDiasxmes();
    public abstract void setDiasxmes(Integer diasxmes);
    
    public abstract Integer getIdmoneda();
    public abstract void setIdmoneda(Integer idmoneda);
    
    public abstract Integer getIdemisor();
    public abstract void setIdemisor(Integer idemisor);
    
    public abstract String getNemotecnico();
    public abstract void setNemotecnico(String nemotecnico);
    
    
    public Integer ejbCreate(Integer id, Integer idespecie, Timestamp fechaCorte, String isin, String nombre, String nombreMoneda, String nombreEmisor, Double valoremision, Integer diasxanno, Integer diasxmes, Integer idmoneda, Integer idemisor, String nemotecnico)  throws CreateException {
        if (id == null) {
            throw new CreateException("The field \"id\" must not be null");
        }
        if (idespecie == null) {
            throw new CreateException("The field \"idespecie\" must not be null");
        }
        if (fechaCorte == null) {
            throw new CreateException("The field \"fechaCorte\" must not be null");
        }
        if (isin == null) {
            throw new CreateException("The field \"isin\" must not be null");
        }
        if (nombre == null) {
            throw new CreateException("The field \"nombre\" must not be null");
        }
        if (nombreMoneda == null) {
            throw new CreateException("The field \"nombreMoneda\" must not be null");
        }
        if (nombreEmisor == null) {
            throw new CreateException("The field \"nombreEmisor\" must not be null");
        }
        if (valoremision == null) {
            throw new CreateException("The field \"valoremision\" must not be null");
        }
        if (diasxanno == null) {
            throw new CreateException("The field \"diasxanno\" must not be null");
        }
        if (diasxmes == null) {
            throw new CreateException("The field \"diasxmes\" must not be null");
        }
        if (idmoneda == null) {
            throw new CreateException("The field \"idmoneda\" must not be null");
        }
        if (idemisor == null) {
            throw new CreateException("The field \"idemisor\" must not be null");
        }
//        if (nemotecnico == null) {
//            throw new CreateException("The field \"nemotecnico\" must not be null");
//        }
        
        // TODO add additional validation code, throw CreateException if data is not valid
        setId(id);
        setIdespecie(idespecie);
        setFechaCorte(fechaCorte);
        setIsin(isin);
        setNombre(nombre);
        setNombreMoneda(nombreMoneda);
        setNombreEmisor(nombreEmisor);
        setValoremision(valoremision);
        setDiasxanno(diasxanno);
        setDiasxmes(diasxmes);
        setIdmoneda(idmoneda);
        setIdemisor(idemisor);
        setNemotecnico(nemotecnico);
        
        return null;
    }
    
    public void ejbPostCreate(Integer id, Integer idespecie, Timestamp fechaCorte, String isin, String nombre, String nombreMoneda, String nombreEmisor, Double valoremision, Integer diasxanno, Integer diasxmes, Integer idmoneda, Integer idemisor, String nemotecnico) {
        // TODO populate relationships here if appropriate
        
    }
}
